DEMO VERSION: This version may be freely distributed provided none of the accompanying files are removed. The demo version has no sound, no paged ROMs, no large/full screen views and no file saving. See 'Registration' file on how to obtain the full shareware version.
A fresh start
-------------
Welcome to the world of HORIZON otherwise previously known as 'MacBeebEm'. As well as the new name, there are lots of new features and this release defines a fresh start for what we lovingly knew as MacBeebEm. So why the new name? Well, some of you will know about Horizon's sister emulator called Rainbow (the Atari 8-bit emulator also for the Apple Mac) and so the new name (and icon) sits comfortably alongside Rainbow. It is also felt that with the new features, Horizon represents a good piece of home-grown shareware, something which MacBeebEm just wasn't quite. Finally there are very tentative plans (no promises!) to port Horizon to Windows 95 and dropping the 'Mac' prefix is a simple, aesthetic step towards that goal.
New Features in Horizon over MacBeebEm v1.2
-------------------------------------------
• Superb sound effects with 3 channels of pure tones and 1 channel of improvised noise
• Full screen display
• Proper Apple keyboard layout
• Improved file I/O handling
• CPU emulation speeded up by some 20%
• Much faster large/full screen display code
• Much, much faster MODE 7 TeleText display, now with full double height characters
• Speedometer to give 'frames per second' and CPU efficiency (100% = normal Beeb speed)
• More 'Frames' options
• Nicer ALERT boxes and better error handling
• Resources for icons (BNDL, FREQ) now included
• Size of application greatly reduced due to removal of sampled beebs.
History
-------
MacBeebEm
Version 1.0 - Debut release as freeware (Dec'94)
Version 1.2 - PowerMac version available; improved keyboard emulation;
better Teletext mode 7 (Feb'95)
Horizon
Version 1.0 - Major new version as well as new name.
Horizon comes as a cut-down DEMO version available for all
whilst the shareware version has all the features above for a small
fee. (Mar'96)
1. Why the Beeb?
----------------
The BBC Micro was a computer built by a British company called Acorn Computers who now build the RISC-based Archimedes. It appeared in the early '80s and was backed by the British Broadcasting Company; hence the BBC tag. The BBC even produced a series of TV programmes to help beginners new to computing. Primarily designed for schools and home use, the BBC Micro was certainly one of the most versatile machines of its day, sporting a host of expansion ports and buses and equipped with an excellent, structured BASIC which even today is still being sold commercially. And, of course, it was the launching pad for one of the most endearing games of all time, Elite.
There are two versions of Horizon. For top performance, get a PowerMac. The 680x0 version is for the benefit of those with fast '040 processors. Horizon is best with System 7 or later and a colour monitor.
2. What is Horizon?
-------------------
Horizon emulates an unexpanded BBC Micro (Model B) with 32K of RAM and 32K of ROM.
IMPORTANT: Due to copyright laws, the MOS and BASIC ROMs cannot be distributed with this software.
Instead you must connect your BBC Micro to your Mac and transfer the required files across. Appendix A gives details about BBC to Mac file transfer.
Note that you must use MOS version 1.20 since Horizon 'intercepts' the ROM at certain fixed locations and therefore it will probably not work with other versions. To complicate matters further, there may be a number of 1.20 variants in existence. Check Appendix F to see if your version will work.
3. Getting started
------------------
Inside 'Horizon Folder' should be the following items:-
Item Comment
Horizon Emulator application (both 680x0 and PPC versions included)
Decode File utility (see Appendix A)
Append File utility (see section 6)
Beeb Disk Splitter File utility (see the accompanyiny READ ME file)
Docs Documentation folder containing...
User Guide this file and...
Appendices another text file...
Registration and another.
ROMs Empty folder (for ROM images)
DUMP_Files " " (see Appendices A and C)
Raw_Files " " (see Appendices A and C)
Software Folder (for BBC files)
TRIANGLES Sample BASIC program
DIS A useful BASIC program
3DMAZE Travel through a maze! (BASIC program)
LUNAR A great lunar lander game! (also BASIC)
IMPORTANT: Horizon will refuse to launch if either the 'User Guide', 'Appendices' or 'Registration' text files inside the 'Docs' folder are missing or have been modified.
Assuming you have the MOS and BASIC ROM images on your Mac now, put them in the 'ROMs' folder and rename them OSROM and BASIC. The emulator will look for all ROM images in this folder; it will also expect all other BBC files to be in the 'Software' folder.
Set your monitor to 256 colours.
Now launch Horizon to give you the familiar display...
At this point you can type in BBC BASIC statements, for example
*FX 0 gives you the Operating System version and
PRINT TIME gives you the time in 100ths of a second since power up.
You can type in a simple program such as
10 FOR I = 1 TO 1000
20 PRINT I
30 NEXT
followed by RUN to see how fast (or slowly) Horizon goes. This takes 9 seconds on a real Beeb in MODE 7. Or you can type
CHAIN "TRIANGLES"
which loads and runs a simple BASIC program to plot random triangles in random colours.
Another BASIC program included is 'DIS' which has the following useful features
D - disassembler
M - memory dump
E - exit program
H - print (no printing possible with MacBeebEm!)
R - select ROM
W - list all ROMs inserted
Type
CHAIN "3DMAZE"
and try out the precursor to DOOM and Marathon. Finally type
CHAIN "LUNAR"
and play a rip-roaring moon lander game. Here's a sneak preview...
Under the 'System' menu is the 'Power up...' option which restarts the emulator. This is more severe than just a CRTL+BREAK since the ROM images are re-read and re-configured.
4. The keyboard
---------------
The keyboard is fully emulated at the 'hardware' level and so all the usual editing features also work. The 10 red F keys are serviced by the 10 digit keys on the numeric keypad to the right of the Mac keyboard as well as the F keys if your Mac keyboard has them. Mac's 'control' key serves as the BBC's 'Caps Lock'; 'alt/option' as the CRTL and 'CAPS LOCK' as SHIFT LOCK. The far right Enter key is the BBC's COPY key. Escape is ESCAPE.
To simulate the action of pressing the BREAK key, select 'Hit Break' under the 'Break' menu. For a hard reset, press CTRL (i.e. Mac's 'alt/option' key) whilst 'hitting Break' and don't let go until you see the '32K' text come up. If you press SHIFT, Horizon looks for a binary file !BOOT to run.
For the benefit of PowerBook users who don't have F keys, you can simulate F keys by pressing CTRL + <digit> keys. To get the @ key, press CTRL A. You can even press CTRL + SHIFT + <digit> to get the Teletext colour codes in BASIC.
IMPORTANT: Some games require the : key for UP movement with / for down. Horizon
substitutes the ' key with the : key, hence the option under the 'Keyboard' menu is
checked. If you need to type the ' symbol, uncheck this option.
See Appendix B for more details.
5. Graphics
-----------
Emulation of the 6845 CRTC and video ULA permits all graphics MODEs 0 to 6 to work as expected. Flashing colours and PALETTE are also supported. Most MODE 7 features (including flashing colours and contiguous/separated graphics, double height characters) are present except for certain control codes (152, 158 and 159).
You may notice that if you change from MODE 7 to MODE 1, the screen grows ever so slightly. This is because MODE 7 has 25 lines of characters and at 10 scan lines per character, that's 250 scan lines. MODE 1 has 32 lines at 8 scan lines per character yielding a total of 256, i.e. 6 extra lines. Horizon will adjust the height of its window to show all the necessary graphics. So when you load up Revs or Sabre Wulf, don't be alarmed to see the screen shrink. Smaller screens means less time eaten up plotting the image and hence better overall speed, especially for larger window views.
For a larger window, see the 'Screen' menu. The 'Full' view only fits a screen size larger than 640x480 but the 'Nearly full' view is designed especially for 640x480-only monitors.
6. File Handling
----------------
A simple but flexible cassette filing system is supported. All files (except ROM images) must have a header of 10 bytes which specify the load and execution addresses. This applies to BASIC programs as well. See Appendices A and C for more info. There is no *CAT facility.
Hence you can perform SAVE, LOAD and CHAIN in BASIC as well as *SAVE, *LOAD and *RUN. All unknown * commands will assume you are *RUNning a file except for the following
*DIR
*DISK
*D.
*DISC
*DRIVE
*DR.
which are ignored and will not attempt to run a file called 'DISK' etc. Other disk commands (e.g. *TYPE) will return a 'File not found' error. These commands will need to be removed before the program(s) can run properly. Disk filing drives and directories are not supported and software using *DIR before accessing files may not work properly unless you manually modify the filenames accordingly. Saving a file called ":0.E.BIGGLES" will create a file called 0.E.BIGGLES in the 'Software' folder.
Horizon will generate headers during all *SAVEs. BASIC's SAVE uses *SAVE and will therefore create the headers.
File names are not limited to 7 characters as with the Acorn DNFS. Filenames are not case sensitive.
This simple filing system also has the extra advantage that PAGE remains at the default value of &E00. Some of your disk based software may expect PAGE to be &1900, as is the case with the Acorn DNFS.
During I/O you may come across 4 error messages. These are
File FILENAME not found - FILENAME file not found in 'Software' folder.
If a subdirectory (see below) is specified, it is
wrapped by two colons.
Bad file header - this file has no header.
File not loaded - this file attempted to start loading into the upper 32K of
ROM.
File not saved - end address is less than start address.
If you find your BBC programs fail to do I/O as expected, they may be relying on OSBPUT/OSBGET which are not implemented on Horizon.
After a while your 'Software' folder will become cluttered with files. You can specify a subdirectory (not to be confused with *DIR directories) by typing, for example,
*=ELITE-DIR
after which Horizon will look for and write files to the folder 'ELITE-DIR' (which must be inside the 'Software' folder of course). Hitting Break or powering up will preserve your subdirectory setting. Only by typing
*=
will you cancel your subdirectory setting. This is useful for organising your 'Software' folder. Don't have filenames beginning with an equal sign, it'll get confusing!
7. Paged ROMs
-------------
Four 'sockets' are available, one of which is taken by BASIC. When Horizon boots up, as well as looking for OSROM and BASIC, it will attempt to read ROM1, ROM2 and ROM3. If these exist, Horizon will 'plug' them into her circuit board. You then need to select 'Paged ROMs' under the 'System' menu to activate them (a check indicates they're turned on). The BASIC ROM is always present.
Type *HELP to see if they were successfully fitted. They should behave like on an unexpanded Model B.
Remember that NO HEADER is required for a ROM image.
In fact, the file called BASIC need not be the BASIC ROM at all. It can be any ROM, e.g. Wordwise. If it's an invalid language ROM, the dreaded 'Language?' message appears. Sort out your ROMs and select 'Power up...' (no need to quit the application).
The facility to turn on and off the paged ROMs may seem a rather peculiar thing to want to do but some games repeatedly page in ROMs. Since the paging in and out of ROMs is somewhat time consuming for Horizon, games like Repton and Night Shade slow down considerably. In fact, it's a good idea to leave the ROMs off (default) unless you need them.
8. Sound
--------
On Horizon, sound is emulated at the 'hardware' level and gives an astonishingly faithful imitation of real Beeb sound effects for many games. All sorts of wierd noises and bizarre envelopes are possible.
You can toggle sound on and off under the 'Extras' menu. Adjust the volume using the Sound control panel.
9. What can Horizon run?
------------------------
Lots of things. Some of the more demanding software it can run include Sabre Wulf, Wizadore, Elite, Thrust, Frak!, Night Shade, Repton, Exile and so on. Horizon can also run Revs which is REALLY demanding. In fact it's so demanding the emulator cheats; it recognises Revs is being executed and 'fiddles' the video interrupts to give a steady screen albeit with some flicker.
Some programs will execute undocumented 6502 instructions. When this happens, an alert box warns you and Horizon powers up. A few are included to allow Zalaga and Exile to run.
See Appendix D for a list of software which have been tested on Horizon. If your programs don't seem to work, go through the checklist in Appendix G.
10. How fast does it go?
------------------------
If you're lucky enough to have a PowerMac, you will enjoy Horizon at real beeb speed on a 6100/66. On faster machines, you may have to increase the screen size or frame rate so that it doesn't run ridiculously fast.
You can alter the rate at which the display is updated by selecting the 'Frames' menu. The 'Fewer' option draws the screen less frequently whilst 'More' will give more detailed animation at a slight loss of overall speed. If you have a slow BASIC game, then the 'Fewer' option may come in useful.
You can see just how fast Horizon is running by checking the 'Show FPS' item under the 'Extras' menu. This gives the number of times the Horizon screen is being redrawn per real second (frames per second or fps) and the CPU efficiency where 100% is roughly the same as a real Beeb. Screen size, frame rate and the complexity of the sound and graphics all affect these statistics.
You may try running your Mac with extensions off (reboot with SHIFT pressed) to increase Horizon's speed.
11. Custom icons
----------------
There are 2 custom icons which may fail to appear after un-stuffing. One is the User Guide (thanks to Richard Drysdall) and the other is the Horizon folder. Both are very nice so use ResEdit to get them back by opening the file/folder info for each item and uncheck the 'Inited' box before saving. On rebooting your machine, the icons ought to appear.